#ifndef CONVFN_H
#define CONVFN_H

#include "jncPrimitives.h"

// Provides type information to literal values

char toChar(char* s);
unsigned char untoChar(char* s);
signed char stoChar(char* s);
char* p_toChar(char* s);
unsigned char* p_untoChar(char* s);
signed char* p_stoChar(char* s);
char* a_toChar(char* s);
unsigned char* a_untoChar(char* s);
signed char* a_stoChar(char* s);
char** a_p_toChar(char* s);
unsigned char** a_p_untoChar(char* s);
signed char** a_p_stoChar(char* s);
short toShort(char* s);
unsigned short untoShort(char* s);
signed short stoShort(char* s);
short* p_toShort(char* s);
unsigned short* p_untoShort(char* s);
signed short* p_stoShort(char* s);
short* a_toShort(char* s);
unsigned short* a_untoShort(char* s);
signed short* a_stoShort(char* s);
short** a_p_toShort(char* s);
unsigned short** a_p_untoShort(char* s);
signed short** a_p_stoShort(char* s);
int toInt(char* s);
unsigned int untoInt(char* s);
signed int stoInt(char* s);
int* p_toInt(char* s);
unsigned int* p_untoInt(char* s);
signed int* p_stoInt(char* s);
int* a_toInt(char* s);
unsigned int* a_untoInt(char* s);
signed int* a_stoInt(char* s);
int** a_p_toInt(char* s);
unsigned int** a_p_untoInt(char* s);
signed int** a_p_stoInt(char* s);
long toLong(char* s);
unsigned long untoLong(char* s);
signed long stoLong(char* s);
long* p_toLong(char* s);
unsigned long* p_untoLong(char* s);
signed long* p_stoLong(char* s);
long* a_toLong(char* s);
unsigned long* a_untoLong(char* s);
signed long* a_stoLong(char* s);
long** a_p_toLong(char* s);
unsigned long** a_p_untoLong(char* s);
signed long** a_p_stoLong(char* s);
bool toBool(char* s);
bool* p_toBool(char* s);
bool* a_toBool(char* s);
bool** a_p_toBool(char* s);
double toDouble(char* s);
double* p_toDouble(char* s);
double* a_toDouble(char* s);
double** a_p_toDouble(char* s);
float toFloat(char* s);
float* p_toFloat(char* s);
float* a_toFloat(char* s);
float** a_p_toFloat(char* s);
char* p_toVoid(char* s);
#endif
